package com.yvon.maple.service.system.service;

import com.yvon.boot.mybatis.IBaseTreeService;
import com.yvon.maple.service.system.entity.Permission;
import com.yvon.maple.service.system.vo.RouterVo;

import java.util.List;

/**
 * @author : Yvon
 * @since : 2021-09-24
 */
public interface PermissionService extends IBaseTreeService<Permission> {

    /**
     * 路由器列表
     *
     * @return List<RouterVo>
     * @author : Yvon / 2022-03-14
     */
    List<RouterVo> routerList();

    /**
     * 建立菜单
     *
     * @param menus 菜单
     * @return List<RouterVo>
     * @author : Yvon / 2022-03-14
     */
    List<RouterVo> buildMenus(List<Permission> menus);

    /**
     * 列表数据通过水平
     *
     * @param level 水平
     * @param id    ID
     * @return List<Permission>
     * @author : Yvon / 2022-03-14
     */
    List<Permission> listDataByLevel(int level, Long id);

    /**
     * 查询马克斯排序
     *
     * @param parentId 父ID
     * @return Integer
     * @author : Yvon / 2022-03-14
     */
    Integer getMaxSort(Long parentId);
}
